✓ NomadNet 1.4.2 released
🬤 rns.recipes
Markdown export · nomadnet-130-released.md
Copy the block below or save it to a .md file.
# NomadNet 1.3.0 Released
_General · started by Mark on Wed, Sep 2, 2026 12:26 PM_
---
## Original post
**Mark** · Wed, Sep 2, 2026 12:26 PM
This one is another pretty massive update, courtesy of **Zenith**, who has been on an absolute tear. The node and interface administration side of `nomadnet` has gotten a thorough overhaul, with a visual config editor, interface profiles, a built-in Micron page editor and a whole new utilities screen. Conversations have gained easy delivery mode switching, per-message signal stats and a few new conveniences. Micron now has collapsible sections and multi-row form inputs, and we even managed to fix a bug or two!
**Changes**
- Added a built-in Micron page editor under `[ My Node ]`, with syntax highlighting, snippets, search and live preview, by **Zenith**
- Added page and folder access permission editing to the page editor, by **Zenith**
- Added nestable collapsible section folding to Micron, by **Zenith**
- Added multi-row form input fields to Micron, by **Zenith**
- Added interface profiles, for saving and switching between sets of enabled interfaces, by **Zenith**
- Added grid view mode for the interfaces list, by **Zenith**
- Added bulk enable, disable, invert and solo actions to the interfaces screen, by **Zenith**
- Added filtering of the interfaces list by enabled or disabled state, by **Zenith**
- Added Ctrl + O shortcut for toggling the selected interface on or off directly, replacing the enable dialog, by **Zenith**
- Added option to paste in interface configuration blocks, by **Zenith**
- Added option to open the Reticulum config file in an external editor from the interfaces screen, by **Zenith**
- Added announce rate, connection speed and interface mode to interface stats, by **Zenith**
- Added restart-required indicator when interfaces have been modified, by **Zenith**
- Added a visual configuration editor for all NomadNet and Reticulum config sections, by **Zenith**
- Added an optional utilities screen with path tables, a path resolver, probe, identity resolver, rncp file sending and a speed test, by **Zenith**
- Added a quit confirmation dialog, by **Zenith**
- Added quick delivery option switching to conversations, by **Zenith**
- Added Ctrl + V shortcut for cycling conversation delivery method, by **Zenith**
- Added per-message details view with delivery method, state and signal stats, by **Zenith**
- Added signal stats persistence for received messages, by **Zenith**
- Added ability to cancel pending outbound messages with Ctrl+K, by **Zenith**
- Added node destination QR dialog and page editor shortcut to node info, by **Zenith**
- Added node online indicator to local peer info, by **Zenith**
- Added Guide sections on interface profiles and collapsible Micron sections, with jump links for all interface types, by **Zenith**
- Improved Micron form fields to shrink to fit narrow terminals instead of being hidden, by **Zenith**
- Improved conversation view to display the selected delivery method, by **Zenith**
- Fixed conversation editor not re-enabling when a peer becomes known, by **Zenith**
- Fixed directory entries for node operators being remembered under the node hash instead of the operator address, by **Zenith**
---
## Reply 1
**Mark** · Wed, Sep 2, 2026 12:26 PM
There's *a lot* of new stuff here, so if you find any bugs or weirdness, this thread is a good place to post them.
---
## Reply 2
**p1ld7a** · Wed, Sep 2, 2026 5:02 PM
Cool changelog thanks !!! I will definitely try it and package it on Nix as soon as it is available on Pypi or Github.
---
## Reply 3
**Mark** · Wed, Sep 2, 2026 5:14 PM
It's up on pypi now as well :)
---
## Reply 4
**p1ld7a** · Wed, Sep 2, 2026 6:29 PM
Thank you, it is now about to be merged in `nixpkgs` as well: https://github.com/NixOS/nixpkgs/pull/559233
---
## Reply 5
**Zenith** · Wed, Sep 2, 2026 7:45 PM
Hey Mark, I sent you a .patch addressing one security issue and a few other minor issues to your LXMF. I had meant to put them on my branch, but you merged the new features in before I could do it lol.
---
## Reply 6
**Mark** · Wed, Sep 2, 2026 8:35 PM
Haven't gotten it yet Zenith, can you try sending it again? Have my clients open now, so you can reach me directly without having to go PN.
---
## Reply 7
**Mark** · Wed, Sep 2, 2026 9:00 PM
It's out :) Thanks Zenith.
You probably want to bump that to 1.3.1 already @p1ld7a ;)
---
## Reply 8
**p1ld7a** · Thu, Sep 3, 2026 8:19 AM
Ongoing @ https://github.com/NixOS/nixpkgs/pull/559424
---
## Reply 9
**steveplays** · Fri, Sep 4, 2026 6:38 PM
Mark, what are your thoughts on adding discovered interfaces to the interfaces list?
Maybe they should have their own page though, because I made a small patch to load them into the existing page (replacing config interfaces) to try it out, but they cause the page to take \~700 ms to load for me with 388 interfaces
(\~300 ms without sorting by name, \~700 ms with sorting by name)
I suppose (probably; I didn't check) most of the \~300 ms is spent reading the files of the discovered interfaces in `InterfaceDiscovery.list_discovered_interfaces()`
```diff
diff --git a/nomadnet/ui/textui/Interfaces.py b/nomadnet/ui/textui/Interfaces.py
index b3914ef..392f674 100644
--- a/nomadnet/ui/textui/Interfaces.py
+++ b/nomadnet/ui/textui/Interfaces.py
@@ -3823,10 +3823,11 @@ class InterfaceDisplay:
def _build_interface_items(self):
self.interface_items = []
self.interface_tiles = []
- interfaces = self.app.rns.config['interfaces']
+ interfaces = sorted(self.app.rns.discovered_interfaces(), key=lambda discovered_interface: discovered_interface["name"])
processed_interfaces = {}
- for interface_name, interface in interfaces.items():
+ for interface in interfaces:
+ interface_name = interface["name"]
interface_data = interface.copy()
if interface_data.get("type") == "RNodeMultiInterface":
```
If you want, I could make a proper patch with a new page.
---